﻿#ifndef RIGGERSCENE_H
#define RIGGERSCENE_H

#include <QObject>
#include <QGraphicsScene>
#include <QGraphicsSceneContextMenuEvent>
#include <QDrag>
#include <QGraphicsSceneDragDropEvent>
#include <QMimeData>

#include "anchoritem.h"

#include "sysdef.h"

#define ADSORPTION_VALUE 10

class RiggerScene : public QGraphicsScene
{
	Q_OBJECT
public:
	RiggerScene(const QSizeF& size, int& type, QObject* parent = nullptr);
	~RiggerScene();
	void resizeScene(QRectF rect);
	void judgmentAdsorption(QPointF childItemPos);
protected:
	void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
	void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
	void keyPressEvent(QKeyEvent* event) override;
	void contextMenuEvent(QGraphicsSceneContextMenuEvent* event) override;
	void wheelEvent(QGraphicsSceneWheelEvent* event) override;
	void dragEnterEvent(QGraphicsSceneDragDropEvent* event) override;
	void dragMoveEvent(QGraphicsSceneDragDropEvent* event) override;
	void dropEvent(QGraphicsSceneDragDropEvent* event) override;

private:
	int& ItemType;
	AnchorItem* itemParent = nullptr;
	AnchorItem* childItem = nullptr;
};


#endif // RIGGERSCENE_H
